// src/axios.js
import axios from 'axios';
import router from '../router/index'; // 确保路由实例导入正确

// 创建 Axios 实例（配置不变）
const instance = axios.create({
  // baseURL: 'http://localhost:8280/api', // 按实际环境配置
  timeout: 30000,
  headers: { 'Content-Type': 'application/json' },
  withCredentials: true
});

// 请求拦截器（不变，如需加 Token 可保留）
instance.interceptors.request.use(
  (config) => {
    const token = localStorage.getItem('token') || sessionStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  (error) => Promise.reject(error)
);

// 响应拦截器（核心修改：恢复返回完整 response 对象）
instance.interceptors.response.use(
  // 1. 成功回调：改回 return response（不再只返回 response.data）
  (response) => {
    return response; // 关键修改：返回完整对象，而非 response.data
  },
  // 2. 错误回调（401 处理不变，正常跳转）
  (error) => {
    const status = error.response?.status;
    if (status === 401 && router.currentRoute.value.path !== '/login') {
      // 清除过期 Token
      localStorage.removeItem('token');
      sessionStorage.removeItem('token');
      // 跳转登录页（带返回路径）
      router.push({
        path: '/login',
        // query: { redirect: router.currentRoute.value.path }
      });
    }
    // 错误信息处理（保持不变）
    const errorMsg = error.response?.data?.message || '请求失败，请稍后重试';
    return Promise.reject({ status, message: errorMsg });
  }
);

export default instance;